package com.briup.jdk8.day03;

import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * 并行Stream在处理大数据的环境下要比串行流效率高
 * UUID：Java中生成唯一字符串的工具类
 */
public class Test5 {
    public static void main(String[] args) {
        // 并行流就是利用多线程来共同处理
        // 创建200w个不重复的字符串
        List<String> list = new LinkedList<>();
        for(int i=0;i<2000000000;i++){
            UUID uuid = UUID.randomUUID();
            list.add(uuid.toString());
        }
        // 并行流的获取方式
        // 1、
        Stream<String> stream = list.parallelStream();
        // 2、
        Stream<String> parallel = list.stream().parallel();
        // 排序+统计
        Stream<String> s1 = list.stream();// 切换到串行流
        long start = System.currentTimeMillis();
        long count = s1.sorted().count();
        long end = System.currentTimeMillis();
        System.out.println("共耗时："+(end-start)+"毫秒");
        System.out.println("list.get(0) = " + list.get(0));

    }
}
